package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.dto.resp.SubDeviceListRespDTO;
import com.ruoyi.system.domain.SubDevice;
import com.ruoyi.system.domain.dto.req.AssetAccountReqDTO;
import com.ruoyi.system.domain.dto.resp.SubDeviceTotalCountResp;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SubDeviceMapper {

    SubDeviceTotalCountResp selectCount();

    /**
     * 查询计量设备列表信息
     * @param reqDTO
     * @return
     */
    List<SubDeviceListRespDTO> querySubAccountList(AssetAccountReqDTO reqDTO);
    /**
     * 删除计量设备信息
     * @param
     */
    void deleteSubDevice(AssetAccountReqDTO reqDTO);

    /**
     * 添加计量主设备
     * @param reqDTO
     */
    void insetSubDevice(SubDevice reqDTO);

    String querySubDeviceLinkBySn(@Param("deviceSn")String deviceSn,@Param("id")String id);

    String queryRepeatNo(@Param("assetNo") String assetNo);

    Integer queryRepeatSn(@Param("deviceSn")String deviceSn);

    void updateSubDevice(SubDevice reqDTO);

    /**
     * 根据设备sn更改设备状态
     * @param deviceSn
     * @param status
     * @return
     */
    int updateStatusBySn(@Param("deviceSn") String deviceSn, @Param("status") String status);

    /**
     * 根据主键查询设备
     * @param id
     * @return
     */
    SubDevice selectByPrimaryKey(String id);

    /**
     * 查询所有设备
     * @return
     */
    List<SubDevice> selectAll();

    /**
     * 根据主设备sn查询辅助设备列表
     * @param mainDeviceSn
     * @return
     */
    List<SubDevice> selectListByMainDeviceSn(String mainDeviceSn);

    String querySubRepeatByName(String deviceName);
}
